part of 'month_data_merging_bloc.dart';

sealed class MonthDataMergingEvent extends Equatable {
  const MonthDataMergingEvent();
}

class MonthSelectChildFileEvent extends MonthDataMergingEvent {
  final List<File> childFiles;

  const MonthSelectChildFileEvent({required this.childFiles});

  @override
  List<Object?> get props => [childFiles];
}

class MonthOpenChildFileEvent extends MonthDataMergingEvent {
  final File file;
  const MonthOpenChildFileEvent({required this.file});
  @override
  List<Object?> get props => [file];
}

class MonthClearChildFileEvent extends MonthDataMergingEvent {
  const MonthClearChildFileEvent();
  @override
  List<Object?> get props => [];
}

class MonthRemoveChildFileEvent extends MonthDataMergingEvent {
  final int index;
  final File file;
  const MonthRemoveChildFileEvent({required this.index, required this.file});
  @override
  List<Object?> get props => [index, file];
}

class MonthExtractChildFileEvent extends MonthDataMergingEvent {
  final List<File> childFiles;
  final String sheetName;
  const MonthExtractChildFileEvent({required this.childFiles, required this.sheetName});
  @override
  List<Object?> get props => [childFiles, sheetName];
}

class MonthSelectMainFileEvent extends MonthDataMergingEvent {
  const MonthSelectMainFileEvent();
  @override
  List<Object?> get props => [];
}

class MonthMainFileResetEvent extends MonthDataMergingEvent {
  const MonthMainFileResetEvent();
  @override
  List<Object?> get props => [];
}

class MonthMergingXlsxDataLoadingEvent extends MonthDataMergingEvent {
  final bool isMergeLoading;
  final File? mainFile;
  final List<List<dynamic>> originData;
  final String mainSheetName;
  final bool isNullHeader;
  const MonthMergingXlsxDataLoadingEvent(
      {required this.isMergeLoading, required this.mainFile, required this.originData, required this.mainSheetName, required this.isNullHeader});

  @override
  List<Object?> get props => [isMergeLoading, mainFile, originData, mainSheetName, isNullHeader];
}

class MonthMergingXlsxDataSuccessEvent extends MonthDataMergingEvent {
  const MonthMergingXlsxDataSuccessEvent();
  @override
  List<Object?> get props => [];
}

class MonthMergingXlsxDataFailEvent extends MonthDataMergingEvent {
  final String msg;
  const MonthMergingXlsxDataFailEvent({required this.msg});
  @override
  List<Object?> get props => [msg];
}
